print("hello,world")
#this is a comment
# a=int(input("输入一个数字："))
# print(a)
# if a>0:
#     print("正数")
# elif a==0:
#     print("零")
# else:
#     print("负数")
# print("程序结束",a)
#print("程序结束"+str(a))
verse=[1,2,3,4,5,6,7,8,]
print(verse)
print(verse[5])
for i in verse:
    print(i)
for index,i in enumerate(verse): #enumerate()函数返回可迭代的索引和值
    print(index,i)
for index,i in enumerate(verse):
    print(index,i,end=" ") #end=" "表示不换行,自定义了结尾字符
print()#换行
print(len(verse)) 
for i in range(100): #range(100)表示从0到99
    print(i)
verse2=[1,"nihao",[1,2]]
print(verse2[2][1])

#字典演示，类似于java的map
dict1={"name":"zhangsan","age":18,"sex":"男"}
#下面的两种方式都可以通过key来取出value
print(dict1["name"])
print(dict1.get("name"))
for i in dict1: #遍历字典的key
    print(i)
for key,value in dict1.items(): #遍历字典的key和value
    print(key,value)
for i in dict1.items(): #遍历字典的key和value,不过合在了一起
    print(i)
for i in dict1.keys(): #遍历字典的key
    print(i)
for i in dict1.values(): #遍历字典的value
    print(i)

#生成器推导式演示
gen=(x for x in range(10)) #生成器推导式
print(gen)
for i in gen:
    print(i,end=" ")
print()
gen2=(x for x in range(10) if x%2==0) #生成器推导式,带条件
print(gen2)
for i in gen2:
    print(i,end=" ")
print()
gen2=(x**x for x in range(10) if x%2==0) #生成器推导式,带条件
#x**x表示x的x次方
print(gen2)
for i in gen2:
    print(i,end=" ")
print()
#生成器用过一次就会销毁，如果需要再次使用需要重新创建

#集合
set1={1,2,3}
set1.add(4)
print(set1)
#集合是无序的，不能通过索引来访问元素，集合可以保证元素唯一性
#元组
tuple=(1,2,3)
tuple=(1,2,3,4) #只有重写才能修改
print(tuple)
#元组是不可变的，不能修改元组中的元素
#列表演示
list=[1,2,3]
list.append(4)
print(list)
#列表是可变的，可以修改列表中的元素

#字符串编码和解码
str="这是一个测试"
print(str)
byte=str.encode("utf-8") #将字符串转换为字节流
print(byte)
str2=byte.decode("utf-8") #将字节流转换为字符串
print(str2)
#输出字符串的长度
print(len(str))
#输出字符串的大写和小写
str="Hello World"
print(str.upper(),str.lower())